﻿Public Class fLlamaRptDeduccionPorEmpleado
    Public Sub InicializarControles()
        ErrorProvider1.SetError(lkTipoPago, Nothing)
        ErrorProvider1.SetError(lkNomina, Nothing)
        ErrorProvider1.SetError(lkEmpresa, Nothing)
        ErrorProvider1.SetError(dFechaInicial, Nothing)
        ErrorProvider1.SetError(dFechaFinal, Nothing)
        cestado.SelectedIndex = 0
    End Sub

    Public Function Validaciones() As Boolean
        If lkEmpresa.Text = lkEmpresa.Properties.NullText Then
            ErrorProvider1.SetError(lkEmpresa, "Debe seleccionar una empresa")
            Return False
        End If
        ErrorProvider1.SetError(lkEmpresa, Nothing)

        If lkNomina.Text = lkNomina.Properties.NullText Then
            ErrorProvider1.SetError(lkNomina, "Debe seleccionar un tipo de nomina")
            Return False
        End If
        ErrorProvider1.SetError(lkNomina, Nothing)

        If lkTipoPago.Text = lkTipoPago.Properties.NullText Then
            ErrorProvider1.SetError(lkTipoPago, "Debe seleccionar un tipo de pago")
            Return False
        End If
        ErrorProvider1.SetError(lkTipoPago, Nothing)


        If dFechaInicial.Text = "" Then
            ErrorProvider1.SetError(dFechaInicial, "Debe seleccionar una fecha de inicio")
            Return False
        End If
        ErrorProvider1.SetError(dFechaInicial, Nothing)

        If dFechaFinal.Text = "" Then
            ErrorProvider1.SetError(dFechaFinal, "Debe seleccionar una fecha de inicio")
            Return False
        End If
        ErrorProvider1.SetError(dFechaFinal, Nothing)

        If CDate(dFechaFinal.Text) < CDate(dFechaInicial.Text) Then
            ErrorProvider1.SetError(dFechaInicial, "La fecha de inicio debe ser menor a la fecha final")
            ErrorProvider1.SetError(dFechaFinal, "La fecha final debe ser mayor a la fecha inicial")
            Return False
        End If
        ErrorProvider1.SetError(dFechaInicial, Nothing)
        ErrorProvider1.SetError(dFechaFinal, Nothing)

        If cestado.Text.Trim <> "True" And cestado.Text.Trim <> "False" Then
            ErrorProvider1.SetError(cestado, "Debe seleccionar el estado de los Clientes que desea visualizar")
            Return False
        End If
        ErrorProvider1.SetError(cestado, Nothing)

        Return True
    End Function
    Private Sub fLlamaRptDeduccionPorEmpleado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            'TODO: This line of code loads data into the 'DbFireAndIceDataSet.tipospago' table. You can move, or remove it, as needed.
            TipospagoTableAdapter.Fill(DbFireAndIceDataSet.tipospago)
            EmpresasTableAdapter1.Fill(DbFireAndIceDataSet.empresas)
            NominastipoTableAdapter1.Fill(DbFireAndIceDataSet.nominastipo)
            InicializarControles()
        Catch ex As Exception
            MsgBox("No se pudo cargar los datos en los controles", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Error al cargar información")
            LogSGS.RegistrarLogSinEnviarCorreo(My.Resources.StringGlobal.prgVinicio, "Error al cargar los datos en el LOAD del formulario (fLlamaRptDeduccionPorEmpleado)", ex, My.Resources.StringGlobal.mdlSeguridad, Name, sender.GetType.FullName.ToString)
        End Try
    End Sub

    Private Sub btOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btOK.Click
        Try
            If Validaciones() Then
                If (GenerarReporteDeduccionPorEmpleadoSGS.CargarDataTablaTemporal(dFechaInicial.Text, dFechaFinal.Text, lkEmpresa.EditValue, lkTipoPago.EditValue, lkNomina.EditValue, Convert.ToBoolean(cestado.Text))) Then
                    Dim mireporte As New rptDeduccionPorEmpleado
                    mireporte.ShowPreview()
                End If
            End If
        Catch ex As Exception
            MsgBox("No se pudo generar el reporte, revise los parámetros o cunsulte al equipo técnico", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Error generando el reporte")
            LogSGS.RegistrarLogSinEnviarCorreo(My.Resources.StringGlobal.prgVinicio, "Error al generar el reporte de decuccion por empleado", ex, My.Resources.StringGlobal.mdlSeguridad, Name, sender.GetType.FullName.ToString)
        End Try
    End Sub

    Private Sub btCancelar_Click(sender As System.Object, e As System.EventArgs) Handles btCancelar.Click
        Me.Close()
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cestado.SelectedIndexChanged

    End Sub
End Class